﻿using System;
using System.Threading;

namespace System
{
	// Token: 0x0200005C RID: 92
	public static class Singleton<TItem> where TItem : class, new()
	{
		// Token: 0x060003D5 RID: 981 RVA: 0x000128CC File Offset: 0x00010ACC
		public static TItem GetInstance()
		{
			if (Singleton<TItem>._Instance == null)
			{
				Interlocked.CompareExchange<TItem>(ref Singleton<TItem>._Instance, Activator.CreateInstance<TItem>(), default(TItem));
			}
			return Singleton<TItem>._Instance;
		}

		// Token: 0x040000AD RID: 173
		private static TItem _Instance = default(TItem);
	}
}
